package com.mh.utils;

import com.mh.pojo.AuctionProduct;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * Date:2023/8/1
 * author:zmh
 * description: 拍卖相关工具类
 **/


public class AuctionTools {

    /**
     * 根据不同步的id，构造出Map返回，Map存储：【UID: 拍卖时间】
     * @param ids 不同步的id列表
     * @param auctionProducts 所有拍卖数据
     * @return 构造好的Map结构
     */
    public static Map<String, Object> constructionRedisHash(List<String> ids, List<AuctionProduct> auctionProducts){
        return auctionProducts.stream()
                .filter(auctionProduct -> ids.contains(auctionProduct.getUid()))
                .collect(Collectors.toMap(AuctionProduct::getUid, AuctionProduct::getAuctionTime));
    }

    /**
     * 构造竞品id和拍卖时间的Map
     *  @param auctionProducts 所有竞品信息
     * @return 构造好的map结构
     */
    public static Map<String, Object> ListAllToMap(List<AuctionProduct> auctionProducts){
        return auctionProducts.stream().collect(Collectors.toMap(AuctionProduct::getUid,AuctionProduct::getAuctionTime));
    }

    /**
     * 判断出价出否大于正常价格，保证数据安全性
     * @param bid 出价
     * @param auctionProduct 通过拍卖对象计算出正常价
     * @return 判断结果
     */
    public static Boolean checkAuctionPrice(Integer bid, AuctionProduct auctionProduct){
        return bid >= auctionProduct.getPrice() + auctionProduct.getIncrementPrice();
    }
}
